﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using RegistroClientes.Dominio;
using RegistroClientes.Persistencia;
using System.Data;

namespace RegistroClientes
{
    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the class name "RegistroService" in code, svc and config file together.
    public class RegistroService: IRegistroService
    {
        private ClienteDAO clienteDAO = null;
        private ClienteDAO ClienteDAO
        {
            get
            {
                if (clienteDAO == null)
                    clienteDAO = new ClienteDAO();
                return clienteDAO;
            }

        }
        public Clientes CrearCliente(string nombre, string correo, string direccion, string telefono)
        {
            Clientes clienteACrear = new Clientes()
            {
                Nombre = nombre,
                Correo = correo,
                Direccion = direccion,
                Telefono = telefono

            };
            return ClienteDAO.Crear(clienteACrear);
        }

        public Clientes ObtenerCliente(int codigo)
        {
            return ClienteDAO.Obtener(codigo);
        }

        public Clientes ModificarCliente(int codigo, string nombre, string correo, string direccion, string telefono)
        {
            Clientes clienteAModificar = new Clientes()
            {
                Codigo = codigo,
                Nombre = nombre,
                Correo = correo,
                Direccion = direccion,
                Telefono = telefono
            };
            return ClienteDAO.Modificar(clienteAModificar);
        }

        public void EliminarCliente(int codigo)
        {
            Clientes clienteExistente = ClienteDAO.Obtener(codigo);
            ClienteDAO.Eliminar(clienteExistente);
        }

        public List<Clientes> ListarClientes()
        {
            return ClienteDAO.ListarTodos().ToList();
        }
        
    }
}
